Field
This disclosure is generally related to cloud computing technology. More specifically, this disclosure is related to a method and system for scheduling input/output resources of a virtual machine.
Related Art
In computing, virtualization is a technology for managing computer resources by abstracting various physical resources (such as operating systems, servers, networks, and storage devices) as logical resources. Virtualization provides a way to use the physical resources without being tied to the original configuration and location of the physical resources. Virtualization may include the creation of a virtual machine that acts like a real computer with an operating system, and software executed on these virtual machines is separated from the underlying hardware resources. Virtualization also enables cloud computing, which is an internet-based computing that provides shared processing resources and data to computers and other devices on demand.
Storage properties play an essential role in virtualization and cloud computing. For example, a Kernel-based Virtual Machine (KVM) is a virtualization technology for the Linux kernel in which a plurality of operating systems can be run on one physical entity. In KVM storage virtualization, multiple virtual disks may be used to share one input/output (I/O) thread. These multiple virtual disks that share one I/O thread may also share the same I/O queue. When one of these virtual disks requires or consumes more I/O resources, the other virtual disks which share the same I/O thread have access to a decreased amount of resources. This may result in an imbalance in the use and availability of I/O resources among the multiple virtual disks. Furthermore, an I/O operation corresponding to a virtual disk may be an interactive operation performed by a user. An imbalance in the availability of I/O resources may also impact the user's experience.